Passed
Push — develop ( a05353...e2fd1b )
by Endre
04:09
created

Container.setupDefaults   A

Complexity

Conditions 1

Size

Total Lines 13
Code Lines 11

Duplication

Lines 0
Ratio 0 %

Code Coverage

Tests 3
CRAP Score 1

Importance

Changes 0
Metric Value
cc 1
eloc 11
dl 0
loc 13
ccs 3
cts 3
cp 1
crap 1
rs 9.85
c 0
b 0
f 0
1
import ListenerAdapter from '../Observer/ListenerAdapter';
2
import Observer from '../Observer/Observer';
3
import ThemesManager from './ThemesManager';
4
import ThemesRegistry, {Theme} from './ThemesRegistry';
5
6
class Container {
7
  registry: ThemesRegistry;
8
  currentThemeAdapter: ListenerAdapter<Theme>;
9
  currentTheme: Observer<Theme>;
10
  manager: ThemesManager;
11
12
  constructor() {
13 2
    this.registry = new ThemesRegistry();
14 2
    this.currentThemeAdapter = new ListenerAdapter<Theme>();
15 2
    this.currentTheme = new Observer<Theme>(this.registry.getTheme('unknown'), this.currentThemeAdapter);
16 2
    this.manager = new ThemesManager(this.currentTheme, this.registry);
17
18 2
    this.setupDefaults();
19
  }
20
21
  protected setupDefaults(): void {
22 2
    this.registry.registerTheme({
23
      isBuildIn: true,
24
      name: 'Google',
25
      url: 'Theme/Google'
26
    });
27 2
    this.registry.registerTheme({
28
      isBuildIn: true,
29
      name: 'Codefrog',
30
      url: 'Theme/Codefrog'
31
    });
32 2
    this.manager.changeTheme('Google');
33
  }
34
}
35
36
export default new Container();